﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Nav3;
using MasterDetailEx;
using System.Data;
using Nav3.EventArgs;
using BAL.EstRec;
using System.Windows.Controls.Primitives;
using System.Collections;
using Microsoft.Win32;
using System.Windows.Threading;

namespace Nav3
{
    /// <summary>
    /// Lógica de interacción para CapturaHq.xaml
    /// </summary>
    public partial class CapturaHq : UserControl, InterfazControl, ISave
    {

        public string unidVrs = "";

        public string auxVersion = "";
        public string aux2Version = "";

        public List<CapturaHQ> lisHQ;
        public List<Pos> llenaComboPos;
        public List<Recurso> llenaComboRecurso;
        public List<string> aidsDelete = new List<string>();

        public string pos;

        public string idPos;

        public string recurso;

        public string idRecurso;

        public TagCreateControl eaux;

        public TagCreateControl eaux2;

        public TagCreateControl ea;

        public bool IsModified { get; set; }
        public bool IsPublish;
        public bool IsSend;

        public CapturaHq()
        {
            InitializeComponent();

            this.llenaComboPos = BAL.EstRec.Pos.GetComboPos();
            cBPos.ItemsSource = llenaComboPos;

            this.llenaComboRecurso = BAL.EstRec.Recurso.GetComboRecurso();
            cBRecurso.ItemsSource = llenaComboRecurso;
        }

        //public void setIsPublish(bool IsPublish, bool IsSend)
        //{

        //    this.IsPublish = IsPublish;
        //    this.IsSend = IsSend;

        //    readOnly(IsPublish, IsSend);
        //}

        public void readOnly2(bool IsPublish, bool IsSend)
        {

            if (IsPublish && IsSend)
            {
                txtCantidad.IsEnabled = false;
                cBPos.IsEnabled = false;
                cBRecurso.IsEnabled = false;
                dataGridHQ.IsReadOnly = true;
                btnPublicar.IsEnabled = false;
                btnGuardar.IsEnabled = false;
                btnEliminar.IsEnabled = false;
                btnPegar.IsEnabled = false;
                btnPublicar.IsEnabled = false;
                btnExportar.IsEnabled = true;
                txtCantidad.Text = "";
                cBRecurso.Text = "";
                cBPos.Text = "";
                lbl_versionStat.Content = "Versión publicada.";
                //MessageBox.Show("Esta es una versión sólo de lectura por que ya se publicó anteriormente.");
            }
            else if (!IsPublish && IsSend)
            {

                txtCantidad.IsEnabled = false;
                cBPos.IsEnabled = false;
                cBRecurso.IsEnabled = false;
                dataGridHQ.IsReadOnly = true;
                btnPublicar.IsEnabled = false;
                btnGuardar.IsEnabled = false;
                btnEliminar.IsEnabled = false;
                btnPegar.IsEnabled = false;
                btnPublicar.IsEnabled = true;
                btnExportar.IsEnabled = true;
                txtCantidad.Text = "";
                cBRecurso.Text = "";
                cBPos.Text = "";
                lbl_versionStat.Content = "Listo para publicar";
            }
            else if (!IsPublish && !IsSend)
            {

                txtCantidad.IsEnabled = true;
                cBPos.IsEnabled = true;
                cBRecurso.IsEnabled = true;
                dataGridHQ.IsReadOnly = false;
                btnPublicar.IsEnabled = true;
                btnGuardar.IsEnabled = true;
                btnEliminar.IsEnabled = true;
                btnPegar.IsEnabled = true;
                btnPublicar.IsEnabled = true;
                btnExportar.IsEnabled = true;
                txtCantidad.Text = "";
                cBRecurso.Text = "";
                cBPos.Text = "";
                lbl_versionStat.Content = "No se publicó, favor de revisar las rutas.";
            }
        }



        public void readOnly(bool IsPublish, bool IsSend)
        {

            if (IsPublish && IsSend)
            {
                txtCantidad.IsEnabled = false;
                cBPos.IsEnabled = false;
                cBRecurso.IsEnabled = false;
                dataGridHQ.IsReadOnly = true;
                btnPublicar.IsEnabled = false;
                btnGuardar.IsEnabled = false;
                btnEliminar.IsEnabled = false;
                btnPegar.IsEnabled = false;
                btnPublicar.IsEnabled = false;
                btnExportar.IsEnabled = true;
                txtCantidad.Text = "";
                cBRecurso.Text = "";
                cBPos.Text = "";
                lbl_versionStat.Content = "Versión publicada.";
                //MessageBox.Show("Esta es una versión sólo de lectura por que ya se publicó anteriormente.");
            }
            else if (!IsPublish && IsSend)
            {

                txtCantidad.IsEnabled = false;
                cBPos.IsEnabled = false;
                cBRecurso.IsEnabled = false;
                dataGridHQ.IsReadOnly = true;
                btnPublicar.IsEnabled = false;
                btnGuardar.IsEnabled = false;
                btnEliminar.IsEnabled = false;
                btnPegar.IsEnabled = false;
                btnPublicar.IsEnabled = true;
                btnExportar.IsEnabled = true;
                txtCantidad.Text = "";
                cBRecurso.Text = "";
                cBPos.Text = "";
                lbl_versionStat.Content = "Listo Para publicar";
            }
            else if (!IsPublish && !IsSend)
            {

                txtCantidad.IsEnabled = true;
                cBPos.IsEnabled = true;
                cBRecurso.IsEnabled = true;
                dataGridHQ.IsReadOnly = false;
                btnPublicar.IsEnabled = true;
                btnGuardar.IsEnabled = true;
                btnEliminar.IsEnabled = true;
                btnPegar.IsEnabled = true;
                btnPublicar.IsEnabled = true;
                btnExportar.IsEnabled = true;
                txtCantidad.Text = "";
                cBRecurso.Text = "";
                cBPos.Text = "";
                lbl_versionStat.Content = "";
            }
        }

        public void setUnidVersion(string unidVersion, TagCreateControl e)
        {
            if (this.unidVrs == "")
            {
                this.unidVrs = unidVersion;
                ea = e;
            }
            else if (this.unidVrs != unidVersion)
            {
                this.auxVersion = this.unidVrs;
                this.unidVrs = unidVersion;

                eaux = ea;
                ea = e;

            }
            else
            {
                this.unidVrs = unidVersion;
                ea = e;
            }

            if (unidVersion != "")
            {

                //Asignamos IsPublish e IsSent
                BgtVersion flags = new BgtVersion();
                flags = BgtVersion.GetDataWithVersion(unidVersion);
                if (flags != null)
                {


                    this.IsPublish = flags.isPublished;
                    this.IsSend = flags.isSend;

                    readOnly(IsPublish, IsSend);


                    if (IsModified)
                    {
                        var result = MessageBox.Show("¿Desea guardar los cambios antes de salir?", "Mensaje del Sistema", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
                        if (result == MessageBoxResult.Yes)
                        {
                            //llamamos a la funcion que actualiza o inserta a la base
                            save();

                            IsModified = false;

                            loadData();
                        }
                        else if (result == MessageBoxResult.No)
                        {
                            //receteamos los aids
                            aidsDelete = new List<string>();
                            //actualizamos la coleccion

                            IsModified = false;

                            loadData();
                        }
                        else
                        {
                            //guardar la version anterior

                            this.aux2Version = this.auxVersion;

                            this.auxVersion = this.unidVrs;

                            eaux2 = eaux;

                            eaux = e;

                            IsModified = false;

                            loadData();

                        }

                    }
                    else
                    {
                        loadData();
                    }
                }

            }
        }
        public void loadData()
        {
            try
            {
                //RECETEAMOS LOS IDS DE BORRADO
                if (!String.IsNullOrEmpty(this.unidVrs))
                {
                    aidsDelete = new List<string>();

                    if (auxVersion != unidVrs)
                    {
                        lisHQ = CapturaHQ.GetCapturaHQ(Convert.ToInt64(this.unidVrs));

                        this.DataContext = new OCViemModelHQ(lisHQ);

                        this.dataGridHQ.ItemsSource = ((OCViemModelHQ)this.DataContext).collections;
                    }
                    else //(auxVersion == unidVrs)  
                    {
                        if (aux2Version == "")
                        {
                            lisHQ = CapturaHQ.GetCapturaHQ(Convert.ToInt64(this.auxVersion));

                            this.DataContext = new OCViemModelHQ(lisHQ);

                            this.dataGridHQ.ItemsSource = ((OCViemModelHQ)this.DataContext).collections;
                        }
                        else
                        {
                            eaux2.RaiseClickEvent();

                            lisHQ = CapturaHQ.GetCapturaHQ(Convert.ToInt64(this.aux2Version));

                            this.DataContext = new OCViemModelHQ(lisHQ);

                            this.dataGridHQ.ItemsSource = ((OCViemModelHQ)this.DataContext).collections;
                        }


                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Problema al cargar datos. {0}",ex.Message);
                MessageBox.Show("Problema al cargar datos. "+ex.Message,"Captura HQ",MessageBoxButton.OK,MessageBoxImage.Error);
            }

        }

        private void validar()
        {

            //validacion si no hay una version
            if (this.unidVrs.Equals(""))
            {
                MessageBoxResult result = MessageBox.Show("Selecione una versión", "Mesaje del sistema", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
            else
            {
                //validacion si no a seleccionado combo pos, recurso y a escrito texto cantidad
                if (!this.cBPos.Text.Equals("") && !this.cBRecurso.Text.Equals("") && !this.txtCantidad.Text.Equals(""))
                {
                    this.lblMsgError.Visibility = Visibility.Hidden;
                    //Validar que lo introducido por el usuario sea igual al selected item pos

                    if (this.validarSelectItemPos() == true)
                    {
                        this.lblMsgError.Visibility = Visibility.Hidden;
                        idPos = ((Pos)this.cBPos.SelectedItem).idPos.ToString();
                        //Validar que lo introducido por el usuario sea igual al selected item recurso

                        if (this.validarSelectItemRecurso() == true)
                        {
                            this.lblMsgError.Visibility = Visibility.Hidden;
                            this.idRecurso = ((Recurso)this.cBRecurso.SelectedItem).idRecurso.ToString();
                            //valida que txtCantidad sea numerico
                            if (this.validaCantidad(txtCantidad.Text) == true)
                            {
                                this.lblMsgError.Visibility = Visibility.Hidden;
                                //Validar que no se agregue un elemento ya repetido
                                if (this.validarRepetido(cBPos.Text, cBRecurso.Text, Int32.Parse(this.txtCantidad.Text)) == true)
                                {
                                    //actualizamos
                                    var list = ((OCViemModelHQ)this.DataContext).collections;
                                    //(from hq in lisHQ
                                    (from hq in list
                                     where hq.idPos == this.idPos && hq.idRecurso == this.idRecurso.ToString()
                                     select hq).ToList<CapturaHQ>().ForEach(hq => hq.Cantidad = Int32.Parse(txtCantidad.Text));

                                    this.IsModified = true;
                                }
                                else
                                {
                                    //insertamos
                                    ((OCViemModelHQ)this.DataContext).collections.Add(new CapturaHQ(long.Parse(this.unidVrs), this.cBPos.Text, this.idPos, this.cBRecurso.Text, this.idRecurso.ToString(), Int32.Parse(this.txtCantidad.Text)));
                                    this.IsModified = true;
                                }
                            }
                            else
                            {
                                this.lblMsgError.Visibility = Visibility.Visible;
                                this.lblMsgError.Content = "Ingrese un número entero en el campo cantidad.";
                            }

                        }
                        else
                        {
                            this.lblMsgError.Visibility = Visibility.Visible;
                            this.lblMsgError.Content = "Ingrese un Recurso válido ...";
                        }
                    }
                    else
                    {
                        this.lblMsgError.Visibility = Visibility.Visible;
                        this.lblMsgError.Content = "Ingrese un POS válido ...";
                    }
                }
                else
                {
                    this.lblMsgError.Visibility = Visibility.Visible;
                    this.lblMsgError.Content = "Se deben de ingresar los 3 campos ...";
                }
            }
        }
        private Boolean validarRepetido(string idPos, string idRecurso, int cantidad)
        {
            bool bandera = true;
            var list = ((OCViemModelHQ)this.DataContext).collections;
            //int count = (from hq in this.lisHQ
            int count = (from hq in list
                         where hq.POS == idPos && hq.Recurso == idRecurso.ToString()
                         select hq).Count();

            if (count > 0)
            {
                bandera = true;
            }
            else
            {
                bandera = false;
            }
            return bandera;

        }
        private Boolean validarSelectItemPos()
        {
            bool bandera = true;
            if (this.cBPos.SelectedItem != null)
            {
                if (((Pos)this.cBPos.SelectedItem).pos.ToString() == this.cBPos.Text)
                {
                    bandera = true;
                }
                else
                {
                    bandera = false;
                }

            }
            else
            {
                bandera = false;
            }
            return bandera;
        }
        private Boolean validarSelectItemRecurso()
        {
            bool bandera = true;
            if (this.cBRecurso.SelectedItem != null)
            {
                if (((Recurso)this.cBRecurso.SelectedItem).recurso.ToString() == this.cBRecurso.Text)
                {
                    bandera = true;
                }
                else
                {
                    bandera = false;
                }

            }
            else
            {
                bandera = false;
            }
            return bandera;
        }
        private void txtCantidad_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                this.validar();
            }
        }
        private Boolean validaCantidad(string sCantidad)
        {
            try
            {
                int num = 0;
                num = Int32.Parse(sCantidad);
                return true;
            }
            catch (Exception Ex)
            {
                return false;
            }
        }

        private void btnEliminar_Click(object sender, RoutedEventArgs e)
        {

            try
            {
                var list = ((OCViemModelHQ)this.DataContext).collections;

                int i = 0;

                int len = (list.ToArray()).Length;

                int bor = 0;

                for (int j = 0; j < len; j++)
                {
                    if (list[j - bor].IsChecked == true)
                    {

                        if (list[j - bor].unidHqBgt != 0)
                        {
                            aidsDelete.Add(list[j - bor].unidHqBgt.ToString());
                        }
                        list.Remove(list[j - bor]);
                        i++;
                        bor++;
                        this.IsModified = true;
                    }
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show("No se pueden eliminar los registros.\nDetalles : " + ex.Message, "Exportar XLS", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

        }

        private void dataGridHQ_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (!IsPublish)
            {
                if (sender != null)
                {
                    DataGrid grid = sender as DataGrid;
                    if (grid != null && grid.SelectedItems != null && grid.SelectedItems.Count == 1)
                    {

                        DataGridRow dgr = grid.ItemContainerGenerator.ContainerFromItem(grid.SelectedItem) as DataGridRow;

                        //combo pos
                        this.cBPos.SelectedItem = new Pos(((BAL.EstRec.CapturaHQ)grid.SelectedItem).idPos, ((BAL.EstRec.CapturaHQ)grid.SelectedItem).POS);
                        this.cBPos.Text = ((BAL.EstRec.CapturaHQ)grid.SelectedItem).POS;

                        //combo recurso
                        this.cBRecurso.SelectedItem = new Recurso(((BAL.EstRec.CapturaHQ)grid.SelectedItem).idRecurso.ToString(), ((BAL.EstRec.CapturaHQ)grid.SelectedItem).Recurso);
                        this.cBRecurso.Text = ((BAL.EstRec.CapturaHQ)grid.SelectedItem).Recurso;

                        //textbox cantidad
                        this.txtCantidad.Text = ((BAL.EstRec.CapturaHQ)grid.SelectedItem).Cantidad.ToString();

                        this.IsModified = true;

                        this.txtCantidad.Focusable = true;
                        this.txtCantidad.Focus();
                    }
                }
            }
        }

        private void btnPublicar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (this.IsModified)
                {
                    if (MessageBox.Show("¿Desea guardar los cambios antes de publicar?", "Captura HQ", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        this.saveChanges();
                    }
                    else
                    {
                        this.loadData();
                        this.IsModified = false;
                    }
                }//if

                if (!unidVrs.Equals(""))
                {
                    if (!PublicarHQ.checkVersionHasData(unidVrs))
                    {
                        MessageBox.Show("No se encontraron datos de ésta versión para publicar.\nVerifíque que ha guardado sus cambios y vuelva a intentar.", "Publicación HQ"
                            , MessageBoxButton.OK, MessageBoxImage.Exclamation);
                        return;
                    }

                    if (MessageBox.Show("¿Está seguro de publicar? Una vez publicada, ésta versión no podrá ser editada.", "Publicación HQ", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {

                        lbl_versionStat.Content = "En proceso de publicación...";
                        btnPublicar.IsEnabled = false;

                        DispatcherOperation dop = this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                        new Action(() =>
                        {
                            PublicarHQ.start(unidVrs, this);

                        }));

                    }
                }
                else
                {

                    MessageBox.Show("Seleccione una version", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Problema al Publicar. {0}",ex.Message);
                MessageBox.Show("Problema al publicar. "+ex.Message,"Captura HQ",MessageBoxButton.OK,MessageBoxImage.Error);
            }
        }

        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            //preguntar si desea guardar los cambios
            if (MessageBox.Show("¿Desea Guardar los cambios?", "Mensaje del Sistema", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                this.saveChanges();
            }
            else
            {
                this.loadData();
                this.IsModified = false;
            }
        }

        private void saveChanges()
        {
            
                //llamamos a la funcion que actualiza o inserta a la base
                this.save();
                //hace refresh al grid
                this.loadData();
                //activa la bandera cuando se guarda 
                this.IsModified = false;
            
        }



        private void btnExportar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.Filter = "Excel|*.xlsx";

                if (saveDialog.ShowDialog().Value)
                {
                    this.disableMouseUI();

                    this.dataGridHQ.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
                    this.dataGridHQ.SelectAll();
                    ApplicationCommands.Copy.Execute(null, this.dataGridHQ);
                    ExportExcel EE = new ExportExcel(saveDialog.FileName, true, unidVrs);
                    EE.exportClipBoard();
                    //this.dataGridHQ.Items.Refresh();
                    //this.dataGridHQ.SelectedIndex = 0;
                    this.dataGridHQ.UnselectAll();

                    this.enableMouseUI();
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show("No se pudo crear el archivo. \nDetalles : " + ex.Message, "Exportar XLS", MessageBoxButton.OK);
            }
        }

        private void disableMouseUI()
        {
            this.IsHitTestVisible = false;
            Mouse.OverrideCursor = Cursors.Wait;
        }

        public void enableMouseUI()
        {
            this.IsHitTestVisible = true;
            Mouse.OverrideCursor = Cursors.Arrow;
        }

        public void InformacionDeExcel(DataTable dt)
        {
            IsModified = true;

            string dd1 = "";
            string dd2 = "";
            string dd3 = "";
            string dd4 = "";
            string dd5 = "";
            string dd6 = "";
            string dd7 = "";

            int col = 0;

            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    if (col == 0)
                        dd1 = dr.ItemArray[col].ToString();
                    if (col == 1)
                        dd2 = dr.ItemArray[col].ToString();
                    if (col == 2)
                        dd3 = dr.ItemArray[col].ToString();
                    if (col == 3)
                        dd4 = dr.ItemArray[col].ToString();
                    if (col == 4)
                        dd5 = dr.ItemArray[col].ToString();
                    if (col == 5)
                        dd6 = dr.ItemArray[col].ToString();
                    if (col == 6)
                        dd7 = dr.ItemArray[col].ToString();

                    col += 1;
                }

                if (validarRepetido(dd2, dd4, Int32.Parse(dd6)) == true)
                {
                    //actualizamos
                    //(from hq in lisHQ
                    // where hq.POS == dd2 && hq.Recurso == dd4
                    // select hq).ToList<CapturaHQ>().ForEach(hq => hq.Cantidad = Int32.Parse(dd6));
                    //this.dataGridHQ.DataContext = this.lisHQ;
                    //this.dataGridHQ.Items.Refresh();

                    //actualizamos
                    var list = ((OCViemModelHQ)this.DataContext).collections;
                    //(from hq in lisHQ
                    (from hq in list
                     where hq.POS == dd2 && hq.Recurso == dd4
                     select hq).ToList<CapturaHQ>().ForEach(hq => hq.Cantidad = Int32.Parse(dd6));
                }
                else
                {
                    var res = (from hq in llenaComboPos
                               where hq.pos == dd2
                               select hq.idPos);

                    foreach (var r in res)
                    {
                        dd3 = r;
                    }

                    var res2 = (from hq in llenaComboRecurso
                                where hq.recurso == dd4
                                select hq.idRecurso);

                    foreach (var r in res2)
                    {
                        dd5 = r.ToString();
                    }

                    dd1 = unidVrs;
                    if (validarRepetido(dd2, dd4, Int32.Parse(dd6)) == true)
                    {

                        //Actualizamos
                        var list = ((OCViemModelHQ)this.DataContext).collections;
                        (from hq in list
                         where hq.POS == dd2 && hq.Recurso == dd4
                         select hq).ToList<CapturaHQ>().ForEach(hq => hq.Cantidad = Int32.Parse(dd6));

                        this.IsModified = true;
                    }
                    else
                    {
                        //insertamos
                        ((OCViemModelHQ)this.DataContext).collections.Add(new CapturaHQ(long.Parse(dd1), dd2, dd3, dd4, dd5, Int32.Parse(dd6)));
                        this.IsModified = true;
                    }
                }

                col = 0;
            }
        }

        private void btnPegar_Click(object sender, RoutedEventArgs e)
        {

            #region Dialalog 1
            //if (!unidVrs.Equals(""))
            //{

            //    DialogGeneraGridExel ge = new DialogGeneraGridExel(true);
            //    try
            //    {
            //        IDataObject data = Clipboard.GetDataObject();
            //        if (data.GetDataPresent(DataFormats.Text))
            //        {
            //            string tmp = (String)data.GetData(DataFormats.Text);
            //            string aux = "";
            //            aux = tmp.Trim();
            //            if (aux.Equals(""))
            //            {

            //                ge.Close();
            //                MessageBox.Show("No ha copiado nada de excel", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Error);
            //            }
            //            else
            //            {
            //                ge.setVersion(unidVrs);
            //                ge.convertirExcelAGrid(tmp);
            //                ge.Hq = this;
            //                ge.ShowDialog();
            //            }
            //        }
            //    }
            //    catch (Exception Ex)
            //    {
            //        ge.Close();
            //        MessageBox.Show("El formato de los datos no coincide", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Error);
            //    }
            //}
            //else {

            //    MessageBox.Show("Seleccione una versión", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            //}
            #endregion

            if (!unidVrs.Equals(""))
            {

                DialogGeneraGridExel2 ge = new DialogGeneraGridExel2(true);
                try
                {
                    IDataObject data = Clipboard.GetDataObject();
                    if (data.GetDataPresent(DataFormats.Text))
                    {
                        string tmp = (String)data.GetData(DataFormats.Text);
                        string aux = "";
                        aux = tmp.Trim();
                        if (aux.Equals(""))
                        {

                            ge.Close();
                            MessageBox.Show("No ha copiado nada de excel", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        else
                        {
                            ge.setVersion(unidVrs);
                            ge.convertirExcelAGrid(tmp);
                            ge.Hq = this;
                            ge.ShowDialog();
                        }
                    }
                }
                catch (Exception Ex)
                {
                    ge.Close();
                    MessageBox.Show("El formato de los datos no coincide", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else
            {

                MessageBox.Show("Seleccione una versión", "Mensaje del Sistema", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }

        public void save()
        {
            try
            {
                if (((OCViemModelHQ)this.DataContext) != null)
                {
                    CapturaHQ hq;

                    //eliminamos a la base
                    if (aidsDelete.Count > 0)
                    {
                        CapturaHQ.DeleteCapturaHQ(aidsDelete);
                        aidsDelete = new List<string>();
                    }

                    //guradamos los unidhq que esten null en la base de datos
                    var list = ((OCViemModelHQ)this.DataContext).collections;
                    //foreach (var item in lisHQ)
                    foreach (var item in list)
                    {
                        //insertamos a la base de datos

                        hq = new CapturaHQ(item.unidHqBgtVersion, item.unidHqBgt, item.POS, item.Recurso, item.Cantidad);
                        CapturaHQ.InsertCapturaHQ(hq);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error en guardado HQ. {0}", ex.Message);
                MessageBox.Show("La información no se guardó correctamente. Cierre y vuelva a abrir la aplicación para intentar nuevamente. \n"+ex.Message,"Captura HQ", MessageBoxButton.OK,MessageBoxImage.Error);
            }
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            ListaCapturaPivot ll = new ListaCapturaPivot("C:\\Users\\IMCDEV10\\Desktop\\archivoejemplo1.xlsx");
        }

        private void button1_Click_1(object sender, RoutedEventArgs e)
        {
            ListaCapturaPivot ll = new ListaCapturaPivot("C:\\test\\MasterDetailEx\\PublicarXLS\\ALIADOSAGT4P.xlsx");
            ll.GenerarLista();
            Console.WriteLine(ll.ToString());
        }

        private void button1_Click_2(object sender, RoutedEventArgs e)
        {
            SincronizarArchivosFDV sFDV = new SincronizarArchivosFDV();
        }
    }
}

